/**
 * 控制状态
 */

import { defineStore } from "pinia";

// 创建 store
const useStatus = defineStore("status", {
  //持久化
  persist: true,
  // 定义状态：一个函数，返回一个对象
  state: () => ({
    menuSwitch: false, //菜单状态
    childSwitch: false, //移动端菜单
    shade: false, //页面遮罩
    //默认配置信息

    ad: {
      indexTop: true, //页面顶部广告
    },
    //首页状态
    index: {
      post: false, //首页快速预览文章
    },
  }),

  // 定义 getters，等同于组件的计算属性
  getters: {
    // getter 函数接收 state 作为参数，推荐使用箭头函数
  },

  // 定义 actions，有同步和异步两种类型
  actions: {
    // 异步 action，一般用来处理异步逻辑

    // 同步 action
    //改变广告状态
    changeAd() {
      this.ad.indexTop = !this.ad.indexTop;
    },
    //改变菜单状态
    changeMenu() {
      this.menuSwitch = !this.menuSwitch;
      //改变遮罩状态
      this.changeShade();
    },
    //改变移动端菜单状态
    changeChild() {
      this.childSwitch = !this.childSwitch;
    },
    //改变遮罩状态
    changeShade() {
      this.shade = !this.shade;
    },
    //改变首页预览文章状态
    changeIndexPost() {
      this.index.post = !this.index.post;
    },
  },
});

export default useStatus;
